package com.xyoto.community.mapper.main;

import com.xyoto.community.entity.main.Question;
import com.xyoto.community.po.MessageQuestionListPO;
import com.xyoto.community.utils.Result;
import com.xyoto.community.vo.QuestionListVo;
import com.xyoto.community.vo.TopicListVo;

import java.util.List;

/**
 * ClassName:   问答mapper接口
 * Author:      挽风
 * Date:        2020
 * Copyright:   2020 by 挽风1.0版本
 * Description:
 **/

public interface QuestionMapper {

    /**
     * 新增问答
     *
     * @param question 问答实体
     *
     * @return 影响行数
     */
    Integer saveQuestion(Question question);

    /**
     * 根据问答id查询问答详情
     *
     * @param questionId 问答id
     */
    Question getQuestionDetailsById(Integer questionId);

    /**
     * 根据问答id查询问答
     * @param questionId
     * @return
     */
    Question selectOneByQuestionId(Integer questionId);

    /**
     * 获取提问个数通过话题id
     * @param topicId 话题id
     * @param status 问题状态未删除
     * @return 问题个数
     */
    Integer countQuestionByTopicId(Integer topicId, short status);

    /**
     * 获取问答列表通过时间
     * @return 话题列表类
     */
    List<QuestionListVo> getQuestionListByTime(Integer endIndexId, Integer topicId, Short deleteStatus);

    /**
     * 根据id获取问答详情
     * @param questionId 问答id
     * @return
     */
    Question getQuestionById(Integer questionId);

    /**
     * 删除问答
     * @param question 实体
     * @return
     */
    Integer removeQuestion(Question question);

    /**
     *获取问答id集合
     * @param topicId 话题id
     * @return
     */
    List<Integer> getQuestionIdList(Integer topicId);
    Integer removeQuestion(Short deleteStatus,Integer questionId);

    /**
     * 查询问答列表信息
     * @param questionIds  问答id集合
     * @return  问答结果列表
     */
    List<MessageQuestionListPO> getQuestionListById(List<Integer> questionIds);
}
